1. Field of the Invention
The present invention relates to computing systems. More specifically, the present invention relates to storage devices and systems for use with computing systems.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those having ordinary skill in the art and access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the present invention would be of significant utility.
2. Description of the Related Art
In large distributed computing systems, a plurality of host computers are typically connected to a number of direct access (permanent) storage devices (DASDs), such as a tape or disk drive unit, by a storage controller. Among other functions, the storage controller handles connection and disconnection between a particular computer and a DASD for transfer of a data record. In addition, the storage controller stores data in electronic memory for faster input and output operations.
The IBM Model 3990 storage controller, is an example of a storage controller which controls connections between magnetic disk units and host computers. The host computers are typically main frame systems such as the IBM 3090, the Model ES9000, or other comparable systems.
The IBM 3990 Model 3 type controller can handle up to sixteen channels from host computers and up to sixty-four magnetic storage units. The host computers are connected to storage controller by at least one and by up to four channels. The storage controller typically has two storage clusters, each of which provides for selective connection between a host computer and a direct access storage device and each cluster being on a separate power boundary. The first cluster might include a multipath storage director with first and second storage paths, a shared control array (SCA) and a cache memory. The second cluster typically includes a second multipath storage director with first and second storage paths, a shared control array and a non-volatile memory (NVS). Thus, each storage path in the storage controller has access to three addressable memory devices for supporting storage controller operation: non-volatile memory; shared control array; and cache.
Nonvolatile storage (NVS) serves as a backup to the cache for the buffering function.
A shared control array (SCA) is a memory array which is shared over all storage paths.
Cache is best known for its application as an adjunct to computer memory where it is used as a high speed storage for frequently accessed instructions and data. The length of time since last use of a record is used as an indicator of frequency of use. Cache is distinguished from system memory in that its contents are aged from the point of time of last use. In a computer memory address space, program data has to be released before data competing for space in the address space gains access. In cache, competition for space results in data falling out of the cache when they become the least recently used data. While infrequently accessed data periodically enter cache, they will tend to "age" and fall out of cache. Modified data in cache is duplicated in nonvolatile memory. Storage controller cache performs an analogous function for direct access storage devices and storage controllers. Reading data from (and writing data to) the magnetic media of the direct access storage devices is fairly time consuming. Among the factors slowing the read and write operations are time required for the magnetic disk to bring a record location into alignment with a transducer and the limited bandwidth of the magnetic transducer used to read and write the data. By duplicating frequently accessed data in cache, read time for data is reduced and data storage system throughput is considerably enhanced.
DASD caches were originally designed to store a track of data at a time. Often, the following track of data of the DASD is brought into cache for as a prediction as to what data would be accessed next. This increases performance for track caching systems. Unfortunately, this scheme impairs performance for record caching systems such as database type systems as the resources of the control unit, cache and DASD are used to bring in data that may not be used by the system. In addition, the storage of whole tracks images of data is inefficient.
As a result, record caching was developed and found to be more suitable for databases and other record oriented applications. The caching of records reduces internal fragmentation in the cache at the expense of greater complexity in the data structures required.
However, as certain performance advantages accompany each caching format, there are applications in which it is desirable to operate a record mode cache in track mode. That is, in a storage control unit that supports both track and record caching, conditions occur where records exist in cache and a full track is desired. Unfortunately, the switch to track caching will cause a performance impact if the control unit must disconnect from the channel, destage (unload) all modified data from record slots for the track, free the record slot cache space and allocate new space in the cache for a track slot before continuing with the disconnected channel command program. Hence, the operation of a record mode cache in track mode is problematic.
The conventional approach to the problem is to write modified data from the cache to the drive and then read data back from the drive to the cache in track mode. However, this scheme is slow, requiring two revolutions of the drive for each operation. In certain applications, where frequent track caching operations are required, the slow speed of this approach imposes a significant limitation on the performance of the system.
Thus, there is a need in the art for an improved track and record mode caching scheme for a storage control unit.